#ifndef __DICTIONARY_HPP__
#define __DICTIONARY_HPP__

#include <vector>
#include <string>
#include <map>
#include <set>

using std::vector;
using std::map;
using std::pair;
using std::string;
using std::set;

//词典类单例
class Dictionary
{
public:
    static Dictionary* createInstance();//静态函数获取唯一实例
    void init(const string& dictpath);//通过词典文件路径初始化词典
    vector<pair<string,int>>& getDict();//获取词典
    map<string,set<int>>& getIndexTable();//获取索引表
    string doQuery(string word);//执行查询

private:
    Dictionary() {}//构造函数
    ~Dictionary() {}//析构函数

private:
    vector<pair<string,int>> _dict;//词典
    map<string,set<int>> _indexTable;//索引表

};


#endif
